The present invention relates to an apparatus and method for identifying and modifying computer operating system components. In particular, the invention provides a structure that is capable of determining operating systems components residing in loaded portions of the operating system and dynamically modifying those components in order to restructure the operating system to achieve useful results.
Operating systems are well known in the technical field of computers. The operating system is the software that provides the computer hardware with the ability to function. For example, Microsoft Windows 95 is the operating system that is used by many users worldwide in order to provide their computer hardware with the ability to function. This software allows application programs such as Microsoft Word or Correl WordPerfect to function on the computer hardware.
In order to provide the basic functionality of the hardware, the operating system must know what hardware is present in the computer and how the hardware is configured. This includes information such as what type of central processor is present (e.g. Intel Pentium or AMD K6), what type of video card adapter is present (e.g. VGA or SVGA), what type of modem is present and so on. The operating system must also know what software is present in the computer such as drivers for the hardware and software. This information is typically contained in the system or initialization files and directs the processor to the appropriate files to load during initialization.
Conventional techniques for determining hardware and software configuration consist of scanning the computer""s hard disk for the system or initialization files or for versions of installed software. For example, when a user purchases an upgrade product for, for example, Microsoft Word 6.0, the upgrade product searches the computer""s hard disk for an older version of the product (e.g. version 5.0) for confirmation before loading the upgrade version. Or, for example, a product such as Norton Utilities searches the hard disk for known files such as the system (SYS), dynamic link library (DLL) and initialization (INI) files and determines whether computer operating system is properly configured based on information in these files and the installed software. A limitation of this technique is that it looks to the information on the disk drive and does not provide the ability to identify loaded components of the run-time operating system.
Additionally, some operating systems such as Windows 95 will dynamically load run-time components of the operating system. When these components are activated, a desirable feature is to identify and modify the activated components. Conventional techniques do not provide such a feature.
The invention overcomes the identified limitations and provides an apparatus and method for identifying and modifying computer operating system components. An exemplary embodiment of the invention includes a component table including a list of possible components of the operating system. An identifier structure is configured to access the component table and to interrogate the operating system to determine which components in the component table are loaded in the operating system. A build structure is coupled to the identifier structure and configured to compile identified components in the component table and to generate a table of the identified components. The resulting structure defines loaded components of the operating system and can then serve to assist additional structures in modifying the operating system.
In another embodiment, the invention further includes a dynamic identifier structure configured to identify components of the operating system that are dynamically loaded. In this embodiment, the build structure is configured to dynamically regenerate the loaded table in order to maintain an up-to-date loaded table of the identified components.
Modification structures use the table of loaded components to determine how to modify the operating system to achieve desired results. For example, the exemplary embodiment is directed to a product for permitting multiple users to use the Windows 95 operating system. This operating system includes at least two portions, including a first portion associated with one state and a second portion associated with a second state, and wherein the first state is for a first user and the second state is for a second user. The operating system further includes a third portion for instructing the operating system where to search for loaded components. The modification structure is configured such that when the first user is activated components associated with the first user are loaded into the operating system and when the second user is activated components associated with the second user are loaded into the operating system.
Advantages of the invention include the ability to identify and modify loaded components of the computer operating system. As a result, modification programs can provide for additional functionality not originally provided for in the operating system.